[INFO] cloning repository https://github.com/zesterer/bread
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zesterer/bread" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzesterer%2Fbread", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzesterer%2Fbread'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0a2fce07601219d8fef3b24556fde2859fd1d448
[INFO] building zesterer/bread against master#881c1ac408d93bb7adaa3a51dabab9266e82eee8 for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzesterer%2Fbread" "/workspace/builds/worker-13/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-13/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/zesterer/bread on toolchain 881c1ac408d93bb7adaa3a51dabab9266e82eee8
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/zesterer/bread
[INFO] finished tweaking git repo https://github.com/zesterer/bread
[INFO] tweaked toml for git repo https://github.com/zesterer/bread written to /workspace/builds/worker-13/source/Cargo.toml
[INFO] crate git repo https://github.com/zesterer/bread already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/zesterer/parze-new.git`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustyline v6.0.0
[INFO] [stderr]   Downloaded tinyset v0.4.2
[INFO] [stderr]   Downloaded internment v0.3.12
[INFO] [stderr]   Downloaded im-rc v14.1.0
[INFO] [stderr]   Downloaded utf8-chars v0.4.0
[INFO] [stderr]   Downloaded nanbox v0.2.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5c2b7bfb0981d0cf76162dfcfb9d8902e0233f674a6310f453ef447257731c76
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "5c2b7bfb0981d0cf76162dfcfb9d8902e0233f674a6310f453ef447257731c76", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5c2b7bfb0981d0cf76162dfcfb9d8902e0233f674a6310f453ef447257731c76", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5c2b7bfb0981d0cf76162dfcfb9d8902e0233f674a6310f453ef447257731c76", kill_on_drop: false }`
[INFO] [stdout] 5c2b7bfb0981d0cf76162dfcfb9d8902e0233f674a6310f453ef447257731c76
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 48172c7e4f306ca0a635ebeb92a2b0d953768e8af389579a061fb79009353606
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "48172c7e4f306ca0a635ebeb92a2b0d953768e8af389579a061fb79009353606", kill_on_drop: false }`
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling memchr v2.3.0
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling version_check v0.9.1
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling unicode-segmentation v1.6.0
[INFO] [stderr]    Compiling unicode-width v0.1.7
[INFO] [stderr]    Compiling utf8parse v0.1.1
[INFO] [stderr]    Compiling arrayvec v0.5.1
[INFO] [stderr]    Compiling parze v0.1.0 (https://github.com/zesterer/parze-new.git#d42e00db)
[INFO] [stderr]    Compiling itertools v0.8.2
[INFO] [stderr]    Compiling thread-id v3.3.0
[INFO] [stderr]    Compiling dirs-sys v0.3.4
[INFO] [stderr]    Compiling bitmaps v2.0.0
[INFO] [stderr]    Compiling rand_xoshiro v0.4.0
[INFO] [stderr]    Compiling unreachable v0.1.1
[INFO] [stderr]    Compiling utf8-chars v0.4.0
[INFO] [stderr]    Compiling thread_local v0.3.3
[INFO] [stderr]    Compiling nanbox v0.2.0
[INFO] [stderr]    Compiling dirs v2.0.2
[INFO] [stderr]    Compiling state v0.4.1
[INFO] [stderr]    Compiling im-rc v14.1.0
[INFO] [stderr]    Compiling tinyset v0.4.2
[INFO] [stderr]    Compiling internment v0.3.12
[INFO] [stderr]    Compiling sized-chunks v0.5.1
[INFO] [stderr]    Compiling rustyline v6.0.0
[INFO] [stderr]    Compiling tao v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lex.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             Token::Semicolon => write!(f, ";"),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `atom`
[INFO] [stdout]    --> src/ast.rs:239:21
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 let atom = atom.link();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_atom`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paren_ty_list`
[INFO] [stdout]    --> src/ast.rs:274:21
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 let paren_ty_list = nested_parser(
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_paren_ty_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pat`
[INFO] [stdout]    --> src/ast.rs:333:33
[INFO] [stdout]     |
[INFO] [stdout] 333 |                 .map_with_span(|pat, span| SrcNode::new(Pat::Wildcard, span));
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:807:61
[INFO] [stdout]     |
[INFO] [stdout] 807 |             .map_with_span(|(((name, generics), ty), body), span| Decl::Def(Def {
[INFO] [stdout]     |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:839:61
[INFO] [stdout]     |
[INFO] [stdout] 839 |             .map_with_span(|(((name, generics), ty), body), span| Decl::Def(Def {
[INFO] [stdout]     |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:854:53
[INFO] [stdout]     |
[INFO] [stdout] 854 |             .map_with_span(|((name, generics), ty), span| Decl::TypeAlias(TypeAlias {
[INFO] [stdout]     |                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:868:58
[INFO] [stdout]     |
[INFO] [stdout] 868 |             .map_with_span(|((name, generics), data_ty), span| Decl::Data(Data {
[INFO] [stdout]     |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]    --> src/ast.rs:780:13
[INFO] [stdout]     |
[INFO] [stdout] 780 |         let module = module.link();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/error.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn at(mut self, span: Span) -> Self {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/error.rs:43:32
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn merge(mut self, mut other: Self) -> Self {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]   --> src/error.rs:83:27
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]    --> src/error.rs:112:27
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_col`
[INFO] [stdout]    --> src/error.rs:137:62
[INFO] [stdout]     |
[INFO] [stdout] 137 |             if let Some(((start_line, start_col), (end_line, end_col))) = span_iter
[INFO] [stdout]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/error.rs:180:46
[INFO] [stdout]     |
[INFO] [stdout] 180 | ...                   if let Some((span, is_primary)) = span_iter
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `global_span`
[INFO] [stdout]    --> src/hir/mod.rs:285:52
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 .unwrap_or_else(|| Ok(if let Some((global_span, generics, hint)) = globals.0.get(&ident) {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:419:35
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(P...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:419:52
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(P...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:419:55
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(P...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:435:35
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:435:52
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:435:55
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:450:35
[INFO] [stdout]     |
[INFO] [stdout] 450 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:450:52
[INFO] [stdout]     |
[INFO] [stdout] 450 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:450:55
[INFO] [stdout]     |
[INFO] [stdout] 450 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:466:35
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Char), TypeInfo::Primitive(Pr...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:466:52
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Char), TypeInfo::Primitive(Pr...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:466:55
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Char), TypeInfo::Primitive(Pr...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:482:55
[INFO] [stdout]     |
[INFO] [stdout] 482 | ...                   Some(|this: &mut Self, a, b| {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/hir/infer.rs:547:33
[INFO] [stdout]     |
[INFO] [stdout] 547 | ...                   ty => Err(Error::custom(format!(
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/hir/infer.rs:628:21
[INFO] [stdout]     |
[INFO] [stdout] 628 |             Unknown(ty) => return Err(ReconstructError::Unknown(id)),
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:262:32
[INFO] [stdout]     |
[INFO] [stdout] 262 |             .or(just('<').map(|sc| Token::Op(Op::Less)))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:263:32
[INFO] [stdout]     |
[INFO] [stdout] 263 |             .or(just('>').map(|sc| Token::Op(Op::More)))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:264:32
[INFO] [stdout]     |
[INFO] [stdout] 264 |             .or(just('!').map(|sc| Token::Op(Op::Not)))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |             .or(just(',').map(|sc| Token::Comma))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:266:40
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .or(seq("::".chars()).map(|sc| Token::Separator))
[INFO] [stdout]     |                                        ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:267:32
[INFO] [stdout]     |
[INFO] [stdout] 267 |             .or(just(';').map(|sc| Token::Semicolon))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:268:32
[INFO] [stdout]     |
[INFO] [stdout] 268 |             .or(just(':').map(|sc| Token::Colon))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:269:32
[INFO] [stdout]     |
[INFO] [stdout] 269 |             .or(just('.').map(|sc| Token::Dot))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:270:32
[INFO] [stdout]     |
[INFO] [stdout] 270 |             .or(just('?').map(|sc| Token::QuestionMark))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:271:32
[INFO] [stdout]     |
[INFO] [stdout] 271 |             .or(just('|').map(|sc| Token::Pipe))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:272:32
[INFO] [stdout]     |
[INFO] [stdout] 272 |             .or(just('$').map(|sc| Token::Dollar))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]    --> src/lex.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |             Token::Tree(delim, tokens) => write!(f, "{}...{}", delim.left(), delim.right()),
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/mir.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let entry = this.instantiate_def(prog, entry, Vec::new())
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `generics`
[INFO] [stdout]    --> src/mir.rs:360:45
[INFO] [stdout]     |
[INFO] [stdout] 360 |             hir::Expr::Intrinsic(intrinsic, generics, args) => Expr::Intrinsic(*intrinsic, args
[INFO] [stdout]     |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mir.rs:396:38
[INFO] [stdout]     |
[INFO] [stdout] 396 |                     Type::Data(data, params) => match &*prog.data_ctx
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mir.rs:424:34
[INFO] [stdout]     |
[INFO] [stdout] 424 |                 Type::Data(data, params) => {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/mir.rs:529:41
[INFO] [stdout]     |
[INFO] [stdout] 529 |                         .map(|(variant, ty)| RawType::Boxed(
[INFO] [stdout]     |                                         ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_generic`
[INFO] [stdout]    --> src/mir.rs:513:25
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let mut get_generic = |name| data.generics
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_generic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from_a`
[INFO] [stdout]    --> src/src.rs:138:26
[INFO] [stdout]     |
[INFO] [stdout] 138 |             (Span::Range(from_a, until_a), Span::Range(from_b, until_b)) =>
[INFO] [stdout]     |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from_b`
[INFO] [stdout]    --> src/src.rs:138:56
[INFO] [stdout]     |
[INFO] [stdout] 138 |             (Span::Range(from_a, until_a), Span::Range(from_b, until_b)) =>
[INFO] [stdout]     |                                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/src.rs:209:15
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn single(index: usize, sym: &SrcNode<T>) -> Self {
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/ty.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let iter = match &**self {
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/ty.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Type::Data(data, params) => params
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/vm/compile.rs:258:33
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 Literal::String(x) => todo!(),
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn at(mut self, span: Span) -> Self {
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn merge(mut self, mut other: Self) -> Self {
[INFO] [stdout]    |                  ----^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:43:28
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn merge(mut self, mut other: Self) -> Self {
[INFO] [stdout]    |                            ----^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]    |                 ----^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/error.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hir/mod.rs:460:17
[INFO] [stdout]     |
[INFO] [stdout] 460 |             let mut body = ast_def.body.to_hir(&mut infer, &scope)?;
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hir/infer.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |             let mut err = Error::custom(format!(
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mir.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let mut get_generic = |name| data.generics
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/builder.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn link(mut self, program: &mut Program) -> (CodeAddr, Vec<(CodeAddr, mir::DefId)>) {
[INFO] [stdout]    |                 ----^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/vm.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn execute(mut self, prog: &Program) -> Option<Value> {
[INFO] [stdout]    |                    ----^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/vm.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     let mut env = (0..n).map(|_| expr_stack.pop().unwrap()).collect();
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `path_parser`
[INFO] [stdout]    --> src/ast.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn path_parser(pat: Parser<impl Pattern<Error, Input=node::Node<Token>, Output=Ident>, Error>) -> Parser<impl Pattern<Error, Input=node::...
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 67 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 35.77s
[INFO] running `Command { std: "docker" "inspect" "48172c7e4f306ca0a635ebeb92a2b0d953768e8af389579a061fb79009353606", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48172c7e4f306ca0a635ebeb92a2b0d953768e8af389579a061fb79009353606", kill_on_drop: false }`
[INFO] [stdout] 48172c7e4f306ca0a635ebeb92a2b0d953768e8af389579a061fb79009353606
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 45ef93ea3033aca3ab115e6a73f0473741b42f45c47257ecb8db983f360f7e0e
[INFO] running `Command { std: "docker" "start" "-a" "45ef93ea3033aca3ab115e6a73f0473741b42f45c47257ecb8db983f360f7e0e", kill_on_drop: false }`
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lex.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             Token::Semicolon => write!(f, ";"),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `atom`
[INFO] [stdout]    --> src/ast.rs:239:21
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 let atom = atom.link();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_atom`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paren_ty_list`
[INFO] [stdout]    --> src/ast.rs:274:21
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 let paren_ty_list = nested_parser(
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_paren_ty_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pat`
[INFO] [stdout]    --> src/ast.rs:333:33
[INFO] [stdout]     |
[INFO] [stdout] 333 |                 .map_with_span(|pat, span| SrcNode::new(Pat::Wildcard, span));
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:807:61
[INFO] [stdout]     |
[INFO] [stdout] 807 |             .map_with_span(|(((name, generics), ty), body), span| Decl::Def(Def {
[INFO] [stdout]     |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:839:61
[INFO] [stdout]     |
[INFO] [stdout] 839 |             .map_with_span(|(((name, generics), ty), body), span| Decl::Def(Def {
[INFO] [stdout]     |                                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:854:53
[INFO] [stdout]     |
[INFO] [stdout] 854 |             .map_with_span(|((name, generics), ty), span| Decl::TypeAlias(TypeAlias {
[INFO] [stdout]     |                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/ast.rs:868:58
[INFO] [stdout]     |
[INFO] [stdout] 868 |             .map_with_span(|((name, generics), data_ty), span| Decl::Data(Data {
[INFO] [stdout]     |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]    --> src/ast.rs:780:13
[INFO] [stdout]     |
[INFO] [stdout] 780 |         let module = module.link();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/error.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn at(mut self, span: Span) -> Self {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/error.rs:43:32
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn merge(mut self, mut other: Self) -> Self {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]   --> src/error.rs:83:27
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thing`
[INFO] [stdout]    --> src/error.rs:112:27
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_thing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_col`
[INFO] [stdout]    --> src/error.rs:137:62
[INFO] [stdout]     |
[INFO] [stdout] 137 |             if let Some(((start_line, start_col), (end_line, end_col))) = span_iter
[INFO] [stdout]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/error.rs:180:46
[INFO] [stdout]     |
[INFO] [stdout] 180 | ...                   if let Some((span, is_primary)) = span_iter
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `global_span`
[INFO] [stdout]    --> src/hir/mod.rs:285:52
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 .unwrap_or_else(|| Ok(if let Some((global_span, generics, hint)) = globals.0.get(&ident) {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:419:35
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(P...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:419:52
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(P...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:419:55
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(P...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:435:35
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:435:52
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:435:55
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Number), TypeInfo::Primitive(...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:450:35
[INFO] [stdout]     |
[INFO] [stdout] 450 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:450:52
[INFO] [stdout]     |
[INFO] [stdout] 450 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:450:55
[INFO] [stdout]     |
[INFO] [stdout] 450 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `this`
[INFO] [stdout]    --> src/hir/infer.rs:466:35
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Char), TypeInfo::Primitive(Pr...
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_this`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/hir/infer.rs:466:52
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Char), TypeInfo::Primitive(Pr...
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:466:55
[INFO] [stdout]     |
[INFO] [stdout] 466 | ...   Some(|this: &mut Self, a, b| (TypeInfo::Primitive(Primitive::Boolean), TypeInfo::Primitive(Primitive::Char), TypeInfo::Primitive(Pr...
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/hir/infer.rs:482:55
[INFO] [stdout]     |
[INFO] [stdout] 482 | ...                   Some(|this: &mut Self, a, b| {
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/hir/infer.rs:547:33
[INFO] [stdout]     |
[INFO] [stdout] 547 | ...                   ty => Err(Error::custom(format!(
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/hir/infer.rs:628:21
[INFO] [stdout]     |
[INFO] [stdout] 628 |             Unknown(ty) => return Err(ReconstructError::Unknown(id)),
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:262:32
[INFO] [stdout]     |
[INFO] [stdout] 262 |             .or(just('<').map(|sc| Token::Op(Op::Less)))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:263:32
[INFO] [stdout]     |
[INFO] [stdout] 263 |             .or(just('>').map(|sc| Token::Op(Op::More)))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:264:32
[INFO] [stdout]     |
[INFO] [stdout] 264 |             .or(just('!').map(|sc| Token::Op(Op::Not)))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |             .or(just(',').map(|sc| Token::Comma))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:266:40
[INFO] [stdout]     |
[INFO] [stdout] 266 |             .or(seq("::".chars()).map(|sc| Token::Separator))
[INFO] [stdout]     |                                        ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:267:32
[INFO] [stdout]     |
[INFO] [stdout] 267 |             .or(just(';').map(|sc| Token::Semicolon))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:268:32
[INFO] [stdout]     |
[INFO] [stdout] 268 |             .or(just(':').map(|sc| Token::Colon))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:269:32
[INFO] [stdout]     |
[INFO] [stdout] 269 |             .or(just('.').map(|sc| Token::Dot))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:270:32
[INFO] [stdout]     |
[INFO] [stdout] 270 |             .or(just('?').map(|sc| Token::QuestionMark))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:271:32
[INFO] [stdout]     |
[INFO] [stdout] 271 |             .or(just('|').map(|sc| Token::Pipe))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sc`
[INFO] [stdout]    --> src/lex.rs:272:32
[INFO] [stdout]     |
[INFO] [stdout] 272 |             .or(just('$').map(|sc| Token::Dollar))
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]    --> src/lex.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |             Token::Tree(delim, tokens) => write!(f, "{}...{}", delim.left(), delim.right()),
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/mir.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let entry = this.instantiate_def(prog, entry, Vec::new())
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `generics`
[INFO] [stdout]    --> src/mir.rs:360:45
[INFO] [stdout]     |
[INFO] [stdout] 360 |             hir::Expr::Intrinsic(intrinsic, generics, args) => Expr::Intrinsic(*intrinsic, args
[INFO] [stdout]     |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_generics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mir.rs:396:38
[INFO] [stdout]     |
[INFO] [stdout] 396 |                     Type::Data(data, params) => match &*prog.data_ctx
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/mir.rs:424:34
[INFO] [stdout]     |
[INFO] [stdout] 424 |                 Type::Data(data, params) => {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/mir.rs:529:41
[INFO] [stdout]     |
[INFO] [stdout] 529 |                         .map(|(variant, ty)| RawType::Boxed(
[INFO] [stdout]     |                                         ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `get_generic`
[INFO] [stdout]    --> src/mir.rs:513:25
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let mut get_generic = |name| data.generics
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_get_generic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from_a`
[INFO] [stdout]    --> src/src.rs:138:26
[INFO] [stdout]     |
[INFO] [stdout] 138 |             (Span::Range(from_a, until_a), Span::Range(from_b, until_b)) =>
[INFO] [stdout]     |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from_b`
[INFO] [stdout]    --> src/src.rs:138:56
[INFO] [stdout]     |
[INFO] [stdout] 138 |             (Span::Range(from_a, until_a), Span::Range(from_b, until_b)) =>
[INFO] [stdout]     |                                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/src.rs:209:15
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn single(index: usize, sym: &SrcNode<T>) -> Self {
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/ty.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let iter = match &**self {
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/ty.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |             Type::Data(data, params) => params
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/vm/compile.rs:258:33
[INFO] [stdout]     |
[INFO] [stdout] 258 |                 Literal::String(x) => todo!(),
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn at(mut self, span: Span) -> Self {
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn merge(mut self, mut other: Self) -> Self {
[INFO] [stdout]    |                  ----^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:43:28
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn merge(mut self, mut other: Self) -> Self {
[INFO] [stdout]    |                            ----^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/error.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]    |                 ----^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/error.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn expected(mut self, thing: Self::Thing) -> Self {
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hir/mod.rs:460:17
[INFO] [stdout]     |
[INFO] [stdout] 460 |             let mut body = ast_def.body.to_hir(&mut infer, &scope)?;
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/hir/infer.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |             let mut err = Error::custom(format!(
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mir.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |                 let mut get_generic = |name| data.generics
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/builder.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn link(mut self, program: &mut Program) -> (CodeAddr, Vec<(CodeAddr, mir::DefId)>) {
[INFO] [stdout]    |                 ----^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/vm.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn execute(mut self, prog: &Program) -> Option<Value> {
[INFO] [stdout]    |                    ----^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/vm/vm.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     let mut env = (0..n).map(|_| expr_stack.pop().unwrap()).collect();
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `path_parser`
[INFO] [stdout]    --> src/ast.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn path_parser(pat: Parser<impl Pattern<Error, Input=node::Node<Token>, Output=Ident>, Error>) -> Parser<impl Pattern<Error, Input=node::...
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 67 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tao v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0599]: no function or associated item named `default` found for struct `infer::InferCtx<'_>` in the current scope
[INFO] [stdout]    --> src/hir/infer.rs:682:33
[INFO] [stdout]     |
[INFO] [stdout] 54  | pub struct InferCtx<'a> {
[INFO] [stdout]     | ----------------------- function or associated item `default` not found for this
[INFO] [stdout] ...
[INFO] [stdout] 682 |         let mut ctx = InferCtx::default();
[INFO] [stdout]     |                                 ^^^^^^^ function or associated item not found in `infer::InferCtx<'_>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `default`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `default` found for struct `infer::InferCtx<'_>` in the current scope
[INFO] [stdout]    --> src/hir/infer.rs:705:33
[INFO] [stdout]     |
[INFO] [stdout] 54  | pub struct InferCtx<'a> {
[INFO] [stdout]     | ----------------------- function or associated item `default` not found for this
[INFO] [stdout] ...
[INFO] [stdout] 705 |         let mut ctx = InferCtx::default();
[INFO] [stdout]     |                                 ^^^^^^^ function or associated item not found in `infer::InferCtx<'_>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `default`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `Default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tao`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "45ef93ea3033aca3ab115e6a73f0473741b42f45c47257ecb8db983f360f7e0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45ef93ea3033aca3ab115e6a73f0473741b42f45c47257ecb8db983f360f7e0e", kill_on_drop: false }`
[INFO] [stdout] 45ef93ea3033aca3ab115e6a73f0473741b42f45c47257ecb8db983f360f7e0e
